export const transferCurrying = (fn: (...rest: any[]) => any, args: any[] = []) => {
  let arLen = fn.length;

  return function(..._args) {
    _args.unshift(...args);

    if (_args.length < arLen) {
      return transferCurrying(fn, _args);
    }

    return fn(..._args);
  };
};
